package com.haojin.java2;

/**
 * @author .29.
 * @create 2022-03-31 16:13
 */
/*
1.wait() notify() notifyAll()三个方法必须使用在同步代码快或同步方法中
2.wait() notify() notifyAll()三个方法的调用者必须是同步代码块或同步方法中的同步监视器
      否则会出现IllegalMonitorStateException异常
3.wait() notify() notifyAll()三个方法是定义在java.lang.Object类中

面试题：sleep() 和 wait() 的异同？
相同点：一旦执行都可以是当前线程进入阻塞状态
不同点：1.sleep()在Thread类中定义   wait()在Object类中定义
       2.sleep()在线程中任何需要的场景下调用，但是wait()必须声明在同步代码块或者同步方法内
       3.关于是否释放同步监视器，当两个方法同时在同步方法或同步代码块中调用，
          sleep()不会释放同步监视器，wait()会释放同步监视器
 */